#ifndef _mop_h_
#define _mop_h_

#include <time.h>

typedef enum _mop_action_ {
  MOP_NOTHING	= 1,
	MOP_TRASH		= 2,
	MOP_DELETE	= 3
} mop_action;

typedef enum _mop_flags_ {
  MOP_IGNORE_HIDDEN   = 1,
  MOP_IGNORE_SYMLINKS = 2,
  MOP_QUIET           = 4,
  MOP_SHOW_TIME       = 8,
  MOP_NO_DIRS         = 16,
  MOP_FATAL           = 32
} mop_flags;

typedef struct _mop_input_ {
	char *path;
  char *trash_path;
	mop_action action;
  int flags;
  time_t time;
} mop_input;

#define MOP_OUT_BLOCK_SIZE (32)
#define MOP_STACK_SIZE     (32768)

typedef struct _mop_output_ {
  int n_entries;
  int index;
  char **entries;
  unsigned long memory;
  long nfiles;
} mop_output;

mop_input  input;
mop_output output;

void mop_parse_args(int argc, char **argv);
void mop_run(void);
void mop_finish(int status);
void mop_help_and_quit(int status);

#endif

